package cn.ylz.ylmall.account.dao.persist.repository;

import cn.ylz.ylmall.account.pojo.entity.User;
import cn.ylz.ylmall.account.pojo.vo.*;

import java.util.List;

public interface IUserRepository {
    /**
     * 根据用户名统计用户数据的数量
     *
     * @param username 用户名
     * @return 匹配用户名的用户数据的数据
     */
    int countByUsername(String username);

    /**
     * 根据手机号码统计用户数据的数量
     *
     * @param phone 手机号码
     * @return 匹配手机号码的用户数据的数据
     */
    int countByPhone(String phone);

    /**
     * 根据电子邮箱统计用户数据的数量
     *
     * @param email 电子邮箱
     * @return 匹配电子邮箱的用户数据的数据
     */
    int countByEmail(String email);

    UserLoginInfoVO selectByUsername(String s);

    int insert(User user);

    PageData<UserListItemVO> list(Integer pageNum, Integer pageSize);

    int delete(Long id);


    UserStandardVO getStandardById(Long id);

    int update(User user);

    List<UserPermissionVO> PermissionsById(Long id);

    List<UserRoleVO> roleById(Long userId);

    PageData<UserListItemVO> listAdmin(Integer pageNum, Integer pageSize);
}
